package com.xishu.annotation.valid;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface MethodValidator {
    /**
     * 检查是否必须要登录
     *
     * @return
     */
    public boolean mustLogin() default true;

    /**
     * 检查是否具有该公司的权限,修改,删除对象的时候，需要有该companyId的权限
     *
     * @return
     */
    public boolean checkCompany() default false;

    /**
     * 检查是否具有该companyId的权限，创建的时候，需要有该companyId的权限
     *
     * @return
     */
    public boolean checkCompanyId() default false;

    /**
     * 检查是否具有该分店的权限，修改,删除的时候，需要有该shopId的权限
     *
     * @return
     */
    public boolean checkShop() default false;

    /**
     * 当传过来的参数带有shopId的时候判断
     * <p>
     * 判断当前用户对shopId 是否有权限，创建的时候，需要有该shopId的权限
     * 用的时候，需要同时带上checkShop = true
     *
     * @return
     */
    public boolean checkShopId() default false;

    /**
     * 至少要是公司的用户
     *
     * @return
     */
    public boolean companyUser() default false;

    /**
     * 至少要是平台管理员用户
     *
     * @return
     */
    public boolean platManagerUser() default false;

    /**
     * 重复请求检查方法
     *
     * @return
     */
    public boolean duplicationRequestCheck() default false;

    /**
     * 要求会员账号登录
     *
     * @return
     */
    public boolean requireCustomerLogin() default false;
}
